<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 深拷贝的作用  用于解决一些引用问题
        // 当不同的dom操作同一个复杂数据会造成
        function deepCopy(obj){
            var obj1 = Object.prototype.toString.call(obj) === '[object Array]'? [] : {} ;
            for (var key in obj){
                // 判断对象的值是否是自身的而不是原型链上的
                if (obj.hasOwnProperty(key)){
                    // 判断对象的值是否是引用数据类型
                    if (typeof obj[key] === 'object'){
                        obj1[key] = deepCopy(obj[key]);
                    } else {
                        obj1[key] = obj[key];
                    }
                }
            }
            return obj1;
        }

        var arr = [1,3,'千秋雪',18,22,{
            name : '张三',
            age : 18
        }];
        var newdata = deepCopy(arr);
        newdata[5].name = '李四';
        console.log(newdata);
        console.log(arr);
    
    </script>
</body>
</html>